/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hojano6;

/**
 *
 * @author Magaly
 */
public interface Stack <E> {
    
    
    /**
     * Metodo encargado de guardar un dato en la pila.
     * post: Se agrega un nuevo dato a la pila.
     * @param dato El dato que se va a guardar. 
     */
    public void push (E dato);
    
    /**
     * Metodo encargado de sacar un dato de la pila (el ultimo en ingresarse).
     * pre: La pila no se encuentra vacia.
     * post: Se remueve Ãºltimo dato ingresado.
     */
    public E pop ();
    
    /**
     * Metodo encargado de permitir observar el ultimo dato que se ingesa.
     * pre: La pila no se encuentra vacia.
     * post: Se regresa el valor del dato mas proxima a remover.
     */
    public E peek ();
    
    /**
     * Metodo encargado de revisar si la pila se encuentra vacia.
     * pre: -
     * post: regresa tru si esta¡ vacia o false si tiene algun dato.
     */
    public boolean empty();
    
    /**
     * Metodo encargado de mostrar el nÃºmero de datos que contiene la pila.
     * post: Retorna el nÃºmero de datos que hay en la pila. 
     */
    public int size();
    
    /**
     * Metodo encargado de limpiar la pila.
     * post: Limpia la pila. 
     */
    public void clear();

}
